package com.wondertek.poms.core.utils;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.Locale;
import java.util.Map;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import lombok.extern.slf4j.Slf4j;

/**
 * <p><b>ExportXmlUtil Description:</b> Freemarker template 工具类 </p>
 *
 * @author douzi
 * <b>DATE</b> 2019年7月17日 下午7:49:29
 */
@Slf4j
public class ExportXmlUtil {
	private static final Configuration config=
            new Configuration(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS);

    static {
        config.setDefaultEncoding("utf-8");
        config.setEncoding(Locale.getDefault(), "utf-8");
        config.setOutputEncoding("utf-8");
        config.setNumberFormat("0");
        config.setClassLoaderForTemplateLoading(ExportXmlUtil.class.getClassLoader(), "/template");
    }

    public static <K, V> ByteArrayOutputStream doExport(Map<K, V> results,String templateName){
        ByteArrayOutputStream out = new ByteArrayOutputStream(1000);
        // 去那个文件夹下寻找模板文件
        try {
            Template template = config.getTemplate(templateName);
            // 模板名称获取模板
            template.process(results, new OutputStreamWriter(out));
        } catch (IOException e) {
            log.error(e.getMessage(),e);
        } catch (TemplateException e) {
            log.error(e.getMessage(),e);
        }
        return out;
    }
}
